home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 226-250 / disk_243 / imagelab / imagelab.doc < prev    next >
Text File  |  1992-05-06  |  47KB  |  1,436 lines

  1. ------------------------------------------------------------------------- 
  2.      ####### #     #  #####   #####  ####### #        #####  ###### 
  3.         #    ##   ## #     # #     # #       #       #     # #     #
  4.         #    # # # # #     # #       #       #       #     # #     #
  5.         #    #  #  # ####### #  #### ####### #       ####### #######
  6.         #    #     # #     # #     # #       #       #     # #     #
  7.         #    #     # #     # #     # #       #       #     # #     #
  8.      ####### #     # #     #  #####  ####### ####### #     # ######
  9. -------------------------------------------------------------------------
  10.  
  11. ImageLab V2.2
  12. Copyright 1989
  13. by Gary Milliorn
  14. All Rights Reserved
  15.  
  16. Distribution for non-commercial purposes is ok, as long as the
  17. program and accompanying files remain unchanged.
  18.  
  19. -------------------------------------------------------------------------
  20.  
  21. 1.0  OVERVIEW
  22.  
  23.     ImageLab is a program which may be used to explore many common image
  24. processing operation, from simple averaging to Fast Fourier Transforms
  25. (FFT's).  ImageLab makes use of the Amiga's blitter to perform fast
  26. operations where available.
  27.  
  28.     ImageLab is copyrighted, and is freely distributable for non-commercial
  29. purposes.
  30.  
  31.     ImageLab is: an evolving program.  If you find it interesting, have
  32. suggestions, bug reports, etc. you can contact me at:
  33.  
  34.     mail: Gary Milliorn
  35.           5915 Shanghai Pierce Rd.
  36.           Austin, Tx 78745
  37.     bix:  gmill
  38.  
  39. I can't promise everything, but I do endeavor to make it as good as I can.
  40.  
  41.  
  42. 1.1  GENERAL
  43.  
  44. **  Note: This is the most unusual aspect of ImageLab (V2.2):
  45.  
  46.     ImageLab opens a window on the WorkBench screen, which allows access
  47. to its menus even when the picture you use is 320 or less.  The menu
  48. strip is also attached to any picture you load, but it may be difficult
  49. to use on small screens, since there are so many menus.
  50.  
  51.     The easiest way to use ImageLab in this manner is to position the
  52. screen partially down the screen and start functions from the exposed
  53. WorkBench window.
  54.  
  55.     An alternate method is to position the image screen at the top, move
  56. WorkBench to front, and drag it partially down.  However, application
  57. programs cannot reposition the WorkBench window, so you must do this.
  58.  
  59.     A this possibility is to keep both screens at the top and flip between
  60. them using the AMIGA-N and AMIGA-M key.
  61.  
  62.  
  63. 1.1.1  COMMON FEATURES
  64.  
  65.     The following applies throughout ImageLab unless otherwise specified:
  66.  
  67.     ImageLab uses the ESCAPE key to terminate an operation in progress.
  68. Whenever lengthy operation are being performed, the pointer changes to
  69. a small spinning clock.  When this is true, you can press ESC to stop
  70. whatever it is doing; however, this may leave your picture in a partially
  71. altered state.
  72.  
  73.     ImageLab uses the RETURN and ENTER keys to simulate the "Ok" gadget
  74. which appears in requester windows.  Similarly, the ESCAPE key siumulates
  75. the cancel gadget.
  76.  
  77.     Function can be applied to the entire picture, or to a selected area.
  78. To select an area, use the mouse to "draw" a selection rectangle by
  79. pressing the left mouse button at one corner and dragging it (with the
  80. button still down) to the opposite corner.  To cancel an area selection
  81. in progress, press the ESCAPE key or the MENU button.
  82.  
  83.     All menu items which call up a requester for additional information
  84. have '...' appended to them.
  85.  
  86.  
  87. 1.2  REQUIREMENTS
  88.  
  89.     * Amiga 500..2000
  90.     * MC68000 or better.
  91.     * 512K memory (the more, the better).
  92.     * System V1.2 software or newer.
  93.  
  94.  
  95. 1.3  KNOWN LIMITATIONS
  96.  
  97.     ImageLab allocates some memory from the C-heap, instead of the system
  98. memory pool.  This means you will probably need a large stack space to 
  99. run extensive operations.  If you experience problems, try setting the
  100. stack size to 25K or more.
  101.  
  102.     ImageLab's undo function is not very complete.
  103.  
  104.     ImageLab cannot take advantage of a MC68881 or MC68882, alas.
  105.  
  106.  
  107. 1.4  KNOWN BUGS
  108.  
  109.     * You cannot invoke the palette from the paint function.
  110.  
  111.     * Much of ImageLab is ready for V1.4: you can use fixed or
  112.       proportional fonts, of any size.  That is the intention.
  113.       Some things don't adjust, so you will get best results if
  114.       your font is 11 points or less.
  115.  
  116.     * ImageLab doesn't save "unknown" IFF objects, like DPPV and
  117.       CRNG.
  118.  
  119.  
  120. 1.5  FUTURE ITEMS
  121.  
  122.     * Process images in HSI space.
  123.     * Programmable convolution kernel sizes.
  124.     * Super bitmap screens.
  125.     * Multiple image screens.
  126.     * Use menus on image screens exclusively.  Pictures less than 640
  127.       pixels wide will be 320 
  128.     * Use system memory allocation exclusively.
  129.     * Better 'undo'.
  130.     * ???
  131.  
  132.  
  133. 1.6  MISCELLANEOUS
  134.  
  135.     Copyright 1989 by Gary W. Milliorn
  136.     All rights reserved.
  137.  
  138.     Developed using Manx C 3.4 (!), 32-bit mode.
  139.  
  140.  
  141. -----------------------------------------------------------------------------
  142. 2.0  INSTALLATION
  143.  
  144.     To install ImageLab in your system, you can use the install program
  145. to use the default installation procedure.  Review the file first, and
  146. if it is acceptable to you, just enter "execute install" and it will
  147. run automatically.
  148.  
  149.     Otherwise, review the following paragraphs to install whatever
  150. portions you would like to have.
  151.  
  152.  
  153. 2.1  IMAGELAB PROGRAM
  154.  
  155.     The ImageLab program does not have any special requirements.  By
  156. default, a directory is created on your SYS: directory, and ImageLab
  157. is placed in there.  You can use the WorkBench or CLI to move it to
  158. a more suitable directory, if you like.
  159.  
  160.  
  161. 2.3  IMAGELAB FONTS
  162.  
  163.     ImageLab comes with two fonts, "tau" and "ceres".  "Tau" is an
  164. 8-point font I run on my system (using the 1.3 command "FF").  The
  165. special feature of this font is the characters at positions $80 and
  166. $81 (hex), when printed sequentially, create an Amiga-style checkmark.
  167. Currently, application programs cannot specify the font used in menu
  168. titles, so it must be handled separately by specifying it as the
  169. default system font.  If you don't like the appearance of "tau", you
  170. might consider changing those two characters to the checkmark, if only
  171. to help keep alive the old (better, IMHO) symbol of the Amiga.  
  172.  
  173.     The second font is "ceres", and is a proportional, bold, 9-point
  174. font.  ImageLab handles fonts of any style and size, up to a point.
  175. Using it is also strictly optional; if present, ImageLab uses it by
  176. default, or reverts to the system default font.  You can also specify
  177. other fonts of your own choosing - see the startup section.
  178.  
  179.     Installing the fonts is strictly optional.
  180.  
  181.  
  182. 2.3  IMAGELAB HELP
  183.  
  184.     ImageLab can be provided with on-line help by storing the help file
  185. ("ImageLab.help") in the same location where the ImageLab program is
  186. stored (generally, "SYS:ImageLab/ImageLab.help"); alternately, it can
  187. be stored in the "S:" directory (ImageLab will locate it automatically).
  188.  
  189.     Installing the help file is strictly optional.
  190.  
  191.  
  192. -----------------------------------------------------------------------------
  193. 3.0  STARTING IMAGELAB
  194.  
  195.     ImageLab can be run via the CLI or via WorkBench.  Operation is
  196. basically identical, except that some of the defaults are changed.
  197.  
  198.  
  199. 3.1  CLI STARTUP
  200.  
  201.     When started from the CLI, the ImageLab command line has the
  202. following format:
  203.  
  204.     ImageLab [-d dir] [-f file] [-r ram] [-v] [-F font] [-c] [-?]
  205.  
  206.     the options are:
  207.  
  208.         -?            : summarize CLI usage.
  209.  
  210.         -b            : enable the bell.
  211.  
  212.         -c            : enable the checkmark character.  If you are using
  213.                       the "tau" font, or have modified your own, setting
  214.                       this option changes the "Project" menu title to an
  215.                       Amiga checkmark.
  216.  
  217.         -d dir        : set the file directory to 'dir'.  Otherwise, the
  218.                       default is the directory ImageLab was 'run' from.
  219.  
  220.         -f file        : load initial image from 'file' (in the specified
  221.                       directory).
  222.  
  223.         -F font        : specify font.  Fonts are specified as "name/size",
  224.  
  225.         -i            : enable icon generation.
  226.  
  227.         -r ram        : use 'ram' as a ram disk.  If not specified, ImageLab
  228.                       uses 'RAM:'.  This is only needed by the "Save/Choose"
  229.                       option.
  230.  
  231.         -v            : verbose.  If set, ImageLab prints debugging info.
  232.                       as in "Helvetica/9".
  233.  
  234.     Icon creation is disabled when ImageLab is started from the CLI.  To
  235. enable it, you must specify the "-i" option.
  236.  
  237.  
  238. 3.2  WORKBENCH STARTUP
  239.  
  240.     ImageLab can be started up via the WorkBench.  Its icon is a tool,
  241. which allows it to receive filenames by clicking on a Project icon
  242. such as ImageLab creates, or selecting both to open "alien" files,
  243. such as those created by Deluxe Paint, DigiView, etc.
  244.  
  245.     The ImageLab icon accepts the tool types listed below.  To set
  246. them, use the WorkBench "Info" function.
  247.  
  248.     BELL=ON|OFF                : if ON, create bells; otherwise, do not.
  249.  
  250.     CHECKMARK=ON|OFF        : if ON, enable the checkmark character.
  251.                                If you are using the "tau" font, or have
  252.                               modified your own, setting this option
  253.                               changes the "Project" menu title to an
  254.                               Amiga checkmark.
  255.  
  256.     DIRECTORY=name            : set the file directory to "name"
  257.  
  258.     FONT=name                : set the ImageLab font to "name"
  259.                               Fonts are specified as "name/size",
  260.  
  261.     ICON=ON|OFF                : if ON, create icons; otherwise, do not.
  262.  
  263.     RAM=name                : use "name" as a ram disk.  If not
  264.                               specified, ImageLab uses "RAM:"  This
  265.                               is only needed by the "Save/Choose" option.
  266.  
  267.     WINDOW=CON:0/0/100/100    : create a message window of the specified size.
  268.                               Mostly just for debug support.
  269.  
  270.     VERBOSE=ON|OFF            : if ON, ImageLab writes debugging information
  271.                               to its WorkBench window.  Do NOT use without
  272.                               a "WINDOW..." specification.
  273.  
  274.     If you had also selected a PROJECT when ImageLab was started, it tries
  275. to open that file as an IFF image file.  Only one file may be specified this
  276. way, however.
  277.  
  278.     Icon creation is enabled when ImageLab is started from the CLI.  To
  279. disable it, you must specify the "ICON=OFF" option.
  280.  
  281.  
  282. -----------------------------------------------------------------------------
  283. 4.0  KEY REFERENCE
  284.  
  285.     The following table lists the keyboard keys which can be used in
  286. ImageLab:
  287.  
  288.     ESC            - terminate an operation.  Same as 'CANCEL'.
  289.     RETURN        - select an operation.  Same as 'OK'.
  290.     ENTER        - same as return.
  291.     HELP        - invoke the help utility.
  292.  
  293.     SHIFT-UP    - move the screen up 10 lines.
  294.     SHIFT-DOWN    - move the screen down 10 lines.
  295.  
  296.     AMIGA-A        - Average.
  297.     AMIGA-B        - Color to black and white.
  298.     AMIGA-C        - Copy selected area.
  299.     AMIGA-D        - Display FFT.
  300.     AMIGA-E        - Edit/paint picture.
  301.     AMIGA-F        - FFT.
  302.     AMIGA-G        - Greyscale.
  303.     AMIGA-H        - Histogram.
  304.     AMIGA-I        - Inverse FFT.
  305.     AMIGA-K        - Close picture.
  306.     AMIGA-L        - Laplacian convolution.
  307.     AMIGA-M        - Move area.
  308.     AMIGA-O        - Open picture.
  309.     AMIGA-P        - Palette.
  310.     AMIGA-R        - Revert to old version.
  311.     AMIGA-S        - Save picture.
  312.     AMIGA-X        - Cut selected area.
  313.     AMIGA-V        - Paste selected area.
  314.     AMIGA-Z        - Undo last operation.
  315.     AMIGA--        - Negative.
  316.     AMIGA-_        - Vertical edge convolution.
  317.     AMIGA-|        - Horizontal edge convolution.
  318.     AMIGA-,        - Occupy all of screen.
  319.     AMIGA-.        - Occupy half of screen.
  320.     AMIGA-/        - Occupy little of screen.
  321.  
  322.  
  323. -----------------------------------------------------------------------------
  324. 5.0  COMMAND REFERENCE
  325.  
  326.     The following sections describe the function of each menu item in
  327. detail.  Each is listed in alphabetical order.  In general, each item
  328. has its own paragraphs; however, simple items are grouped unter the
  329. parent menu.
  330.  
  331.  
  332. ABOUT
  333. -----
  334.     The "About" menu item provides the requisite display of the program
  335. status (version number, etc.), a monitor of the free memory available
  336. (total), and access to the "help" system.
  337.  
  338.  
  339. AVERAGE
  340. -------
  341.         The "Average" item performs area averaging of the picture or selected
  342.     area.  Averaging is performed by using a 3x3 control matrix to select
  343.     points of interest surrounding each pixel in the pixture (or selected
  344.     area).  For each non-zero term in the matrix, the corresponding pixel
  345.     value is added to a sum.  Then the center pixel is replaced by the
  346.     average value.
  347.  
  348.         The effect of averaging an area is to reduce noise by blurring the
  349.     area, in a manner similar to (but faster) the 'Smooth' convolution
  350.     kernel.  The various averaging options select different severities of
  351.     smoothing
  352.     
  353.     The available suboptions are:
  354.  
  355.         HORIZONTAL
  356.         VERTICAL
  357.         H & V
  358.         DIAGONAL
  359.         ALL (A)
  360.         CUSTOM...
  361.  
  362.     "Horizontal" averages based upon a pixels two neighbors to the left and
  363.     right, using the following 3x3 matrix:
  364.         
  365.         0    0    0
  366.         1    1    1
  367.         0    0    0
  368.         
  369.     "Vertical" averages based upon the two neighbors above and below, using
  370.     the following 3x3 matrix:
  371.         
  372.         0    1    0
  373.         0    1    0
  374.         0    1    0
  375.         
  376.     The "H & V" average combines the previous two methods to base the average
  377.     on those four pixels, using the following 3x3 matrix:
  378.         
  379.         0    1    0
  380.         1    1    1
  381.         0    1    0
  382.         
  383.     The "Diagonal" average varies the previous one by using the four pixel
  384.     at each corner, using the following 3x3 matrix:
  385.         
  386.         1    0    1
  387.         0    1    0
  388.         1    0    1
  389.         
  390.     The "All" average (the usual one) averages each pixel based upon all
  391.     surrounding pixels.  This produces the best average.  It is based upon
  392.     the following 3x3 matrix:
  393.         
  394.         1    1    1
  395.         1    1    1
  396.         1    1    1
  397.         
  398.     The "Custom..." option brings up a custom matrix editor.  This window
  399.     displays nine cells in a three by three format.  You can select and
  400.     edit the value in each of the cells.  Enter a non-zero value to
  401.     enable that location (pictorially speaking) to be used in the averaging,
  402.     or leave it as zero to ignore that location.
  403.  
  404.     Options:
  405.             If SHIFT is held when one of these options is selected, then
  406.         the custom matrix editor is brought up with the contents of the
  407.         selected averaging matrix.  You can edit it to suit your needs.
  408.         Note: the built-in matrices cannot be changed, they are fixed
  409.         and will be reset each time you use them.
  410.  
  411.             If CTL is held while selecting an averaging option, then the
  412.         sum of the selected pixels is always divided by 9 (the kernel size),
  413.         instead of the number of pixels selected by the matrix.  This has
  414.         the effect of squashing the result into a darker image.
  415.  
  416.  
  417. BELL
  418. ----
  419.         The "Bell" item controls whether ImageLab signals an alarm on the
  420.     completion of any operation.  The options are:
  421.  
  422.         ON
  423.         OFF
  424.  
  425.         If ON, then the Amiga's alarm function is calle.  This will simply
  426.     flash the screen by default, but several public domain functions are
  427.     available which intercept this call and substitute an audible bell or
  428.     sampled sound.
  429.  
  430.         The primary use of the bell function is to alert you when some of
  431.     the lengthier functions have completed.  Some functions, especially
  432.     the FFT function, can take several minutes to complete.
  433.  
  434.         The bell is off by default, since they tend to be annoying.  They
  435.     can be enabled by the options:
  436.  
  437.         -b            (from the CLI)
  438.         BELL=ON        (from the WorkBench)
  439.  
  440.  
  441. BINARY...
  442. ---------
  443.         The "Binary..." function replaces each pixel with black if it
  444.     is less than a specified limit, or with white if it is greater than
  445.     or equal to that limit.  The limit is specified by a sliding bar,
  446.     which allows you to specify the color index number (0..max).
  447.  
  448.         The effect of the "Binary" functions is much like orthographic
  449.     film: the result is pure black and white.  Of course, the resolution
  450.     is cut off sharply.
  451.  
  452.  
  453. CLEAR
  454. -----
  455.         The "Clear" operation sets the selected area to the background color.
  456.     
  457.     Options:
  458.         If the SHIFT key is held, the area is set to the last color that
  459.     was selected in the color palette.
  460.     
  461.     See:    PALETTE
  462.  
  463.  
  464. CLOSE
  465. -----
  466.     Close closes the current picture and frees all associated memory items,
  467.     including any FFT computations.  If the picture has been modified but
  468.     not saved, a warning requester will be displayed first.
  469.  
  470.  
  471. COLOR TO B&W
  472. ------------
  473.         The "Color to B&W" option converts a color picture to a black and
  474.     white one (a grey scale, actually).  This function is the primary tool
  475.     used to allow ImageLab to process color IFF files (it is also known as
  476.     the Un-Ted Turner function).  "Color to B&W" uses the standard EIA
  477.     weighting levels to obtains an evenly distributed grey scale.  Note:
  478.     if your picture has more than 16 colors, the greyscale will cause the
  479.     picture to appear grainier -- this is a limitation of the Amiga DAC
  480.     architecture.
  481.  
  482.  
  483. COLORS
  484. ------
  485.         The "Colors" item provides access to the color map functions for
  486.     this picture.  The available options are:
  487.  
  488.         PALETTE
  489.         GREYSCALE
  490.         NEGATIVE
  491.         SATURATE
  492.         PSEUDOCOLOR
  493.         COLOR to B&W
  494.         LINEARIZE
  495.         DELETE COLORS...
  496.         MAP COLORS...
  497.  
  498.         For information on the color operations, refer to the individual
  499.     command descriptions.
  500.  
  501.  
  502. CONVOLVE
  503. --------
  504.         The "Convolve" item enables performing graphical convolution of
  505.     the selected area.  Convolution alters the center pixel by replacing
  506.     it with the weighted pixel values in the surrounding area (usually
  507.     including itself as well).  The available convolve operations are:
  508.  
  509.         SMOOTH
  510.         SHARPEN
  511.         LAPLACIAN
  512.         VERTICAL EDGE
  513.         HORIZONTAL EDGE
  514.         HIGH FREQUENCY
  515.         LOW FREQUENCY
  516.         CUSTOM...
  517.  
  518.         The "Custom..." option brings up a custom matrix editor.  This
  519.     window displays nine cells in a three by three format.  You can select
  520.     and edit the value in each of the cells.  Each cells value will be
  521.     multiplied by the corresponding pixel value, and the sum of all nine
  522.     will be stored at the center pixel.
  523.  
  524.         For information on the other convolutions, refer to the individual
  525.     command descriptions.
  526.  
  527.     Options:
  528.             If SHIFT is held when one of these options is selected, then
  529.         the custom matrix editor is brought up with the contents of the
  530.         selected averaging matrix.  You can edit it to suit your needs.
  531.         Note: the built-in matrices cannot be changed, they are fixed
  532.         and will be reset each time you use them.
  533.  
  534.  
  535. COPY
  536. ----
  537.         The "Copy" operation copies the selected area to the clipboard.
  538.     
  539.  
  540. CUT
  541. ---
  542.         The "Cut" operation copies the selected area to the clipboard,
  543.     then clears the resulting area to the background color.
  544.     
  545.     Options:
  546.         If the SHIFT key is held, the area is set to the last color that
  547.     was selected in the color palette.
  548.     
  549.     See:    CLEAR, PALETTE
  550.  
  551.  
  552. DELETE...
  553. ---------
  554.         The "Delete..." item calls up the file requester.  Selecting a
  555.     file and then the OK gadget will delete the that file.
  556.  
  557.  
  558. DELETE COLORS...
  559. ----------------
  560.         The "Delete Colors..." function beings up a requester which has
  561.     a box for every possible color, numbered from 0..n.  To delete a
  562.     represented color, click on an open box and an 'X' will appear in
  563.     it.  When "OK" is selected, every marked color will be deleted from
  564.     the picture.  The remaining colors are then packed further down into
  565.     the palette.  "Delete Colors..." allows you to remap the color palette,
  566.     possibly reducing the number of colors (and therefore, graphics bit
  567.     planes) required.
  568.  
  569.  
  570. DISPLAY
  571. -------
  572.         The "Display" function causes ImageLab to open a screen and display
  573.     the two-dimensional representation of the FFT you have computed (you
  574.     cannot select this function unless FFT data is present, whether created
  575.     or loaded).
  576.  
  577.         The "Display" function is controlled by the two options: 
  578.     "Log Display" and "Normal Display".
  579.  
  580.     Note: you do not have to re-compute the FFT if you only change the
  581.     display modes.
  582.  
  583.  
  584. DISTORT...
  585. ----------
  586.         The "Distort..." function introduces distortion into the picture or
  587.     selected area.  Distortion is simulated by displacing the pixel in a
  588.     random direction at random intervals (the distortion probability).
  589.  
  590.         A requester allows you to specify the approximate percentage
  591.     probability that distortion will occur, from 0 (never) to 100 (always).
  592.  
  593.  
  594. EDIT PARAMETERS...
  595. ------------------
  596.         The "Edit Parameter..." function allows you to change the size,
  597.     depth, or modes of the current picture.  When selected, a requester
  598.     is brought up, as follows:
  599.  
  600.         +-------------------------------------+
  601.         |  Enter the new screen parameters:   |
  602.         |                                     |
  603.         |  Width:       640                   |
  604.         |                                     |
  605.         |  Height:      200                   |
  606.         |                                     |
  607.         |  Depth:        5                      |
  608.         |                                     |
  609.         |    [] HAM      [] Interlace         |
  610.         |                                     |
  611.         |    [] Extra-Half-Bright             |
  612.         |                                     |
  613.         | [ Ok ]                [ Cancel ]    |
  614.         +-------------------------------------+
  615.  
  616.     To enable a screen mode (HAM, Interlace, or Extra-Half-Bright), click
  617.     in the box until an 'X' is present.  To disable that mode, click until
  618.     the 'X' is not present.  Size parameters can be changed by editing the
  619.     displayed values.
  620.  
  621.     Options:
  622.         If the SHIFT key is held while "Edit Parameters..." is selected,
  623.     it will ignore the selected area and will use the total size of the
  624.     picture as the default size instead.
  625.  
  626.     Note: FFT data is preserved across this function, although its
  627.     applicability is highly questionable.
  628.  
  629.  
  630. FFT
  631. ---
  632.         The "FFT" Menu provides access to the FFT operations.  The available
  633.     functions are:
  634.  
  635.         TRANSFORM
  636.         INVERSE
  637.         --------------
  638.         TRANSLATION ON
  639.         NO TRANSLATION
  640.         --------------
  641.         DISPLAY
  642.         LOG DISPLAY
  643.         NORMAL DISPLAY
  644.         --------------
  645.         FREE FFT
  646.  
  647.         For information on the FFT operations, refer to the individual
  648.     command descriptions.
  649.  
  650.  
  651. FFT TOOLS
  652. ---------
  653.         The "FFT Tools" menu performs operations on FFT data that has been
  654.     generated.  It has the following options:
  655.  
  656.         ZERO REAL
  657.         ZERO IMAGINARY
  658.         INVERT REAL
  659.         PHASE RANDOMIZE
  660.  
  661.     The "Zero Real" option sets the real part of the complex FFT data to
  662.     zero, while "Zero Imaginary" clears the imaginary part.  "Invert Real"
  663.     replaces the real part with its reciprocal.  Phase randomize replaces
  664.     the phase component of the FFT data with a random value (it must
  665.     convert the data to polar form and back, so this can be slow).
  666.  
  667.  
  668. FILTER
  669. ------
  670.         The "Filter" menu provides access to various image filter methods
  671.     other than the Convolve and Average functions.  The available filters
  672.     are:
  673.  
  674.         SOBEL
  675.         ROBERTS
  676.         BINARY...
  677.         THRESHOLD...
  678.         PIXELIZE...
  679.         MINIMUM
  680.         MEDIAN
  681.         MAXIMUM
  682.         ------------
  683.         DISTORT...
  684.         NOISE...
  685.  
  686.         For information on the filter operations, refer to the individual
  687.     command descriptions.
  688.  
  689.  
  690. FLIP
  691. ----
  692.         The "Flip" item flips the selected area around an imaginary
  693.     axis.  The "Horizontal" options flips it around an vertical axis,
  694.     producing a mirror image.  The "Vertical" options flips it around
  695.     a horizontal axis, producing an upside-down image.
  696.  
  697.  
  698. FREE FFT
  699. --------
  700.         The "Free FFT" function releases all memory associated with an
  701.     FFT.  If you are pressed for space, this function will free up quite
  702.     a bit, since 16 bytes are required for each pixel in the FFT area.
  703.  
  704.  
  705. GAMMA CORRECTION
  706. ----------------
  707.         The "Gamma Correction" applies a series of corrective factors to
  708.     the greyscale color map, based upon empirical values for the Amiga
  709.     monitor.  These factors vary quite a bit; to alter them, hold down
  710.     the SHIFT key when selecting "Gamma Correction" and a requester will
  711.     allow you to enter other values for gamma, c, and I0.  The default
  712.     values are:
  713.  
  714.         gamma    = 0.5
  715.         c        = 1.75
  716.         I0        = 1.00
  717.  
  718.  
  719. GREYSCALE
  720. ---------
  721.         The "Greyscale" option sets the picture's color map to a linearly
  722.     increasing range.  This option automatically adjusts to different
  723.     picture depths, but since the Amiga's video DAC's are only 4 bits
  724.     wide, only 16-color pictures can make proper use of greyscale images.
  725.     Pictures with more than 16 colors will have repeated grey colors,
  726.     while those with less than 16 colors will have skipped values.
  727.  
  728.  
  729. HALFTONE...
  730. -----------
  731.         The "Halftone..." function allows the conversion of the current
  732.     screen to a halftoned image.  A requester allows the selection of a
  733.     two-cell or three-cell halftone (note that this implies that the
  734.     resulting picture will be two or three times as large as the
  735.     selected area).
  736.  
  737.  
  738. HAM CONVERSION
  739. --------------
  740.         The "HAM Conversion" option is enabled only when the loaded
  741.     picture is in HAM mode.  Selecting this function converts the
  742.     picture or selected area to a 4-plane greyscaled image.
  743.  
  744.         "HAM Conversion" correctly processes selected area that do not
  745.     begin in the left-most column by scanning all pixels to the left of
  746.     the selection area and tracking the resulting RGB values.
  747.  
  748.  
  749. HISTOGRAM
  750. ---------
  751.         The "Histogram" function "Display" counts the number of each pixel
  752.     value in the picture or selected area, and displays the totals.  The
  753.     "Equalize" function uses this information to "tweak" the color palette
  754.     values to obtain a more uniform color distribution.
  755.  
  756.         The options for the Histogram Display function is:
  757.  
  758.             INCLUDE BLACK
  759.             EXCLUDE BLACK
  760.             BAR GRAPH
  761.             LINE GRAPH
  762.  
  763.         The "Include Black" and "Exclude Black" options determine whether
  764.     black colors are included in the display.  Since the plot is 
  765.     automatically scaled to fit the main ImageLab display window, if your
  766.     picture has a lot of black (as in a picture on a background), it will
  767.     be hard to see the pixel distribution if the large number of black
  768.     pixels flattens the curve.  Normally, this is not a problem and black
  769.     pixels are included.
  770.  
  771.         The "Bar Graph" and "Line Graph" options cause the histogram
  772.     plot to be a bar graph or a line graph, as expected.
  773.  
  774.     Note: The Display options do not affect the Equalize function in
  775.     any way.
  776.  
  777.  
  778. HORIZONTAL EDGE
  779. ---------------
  780.         The "Horizontal Edge" operation uses graphical convolution to
  781.     highlight horizontal edges (but not vertical ones).  The kernel used is:
  782.         
  783.         -1    -1    -1
  784.          0     0     0
  785.          1     1     1
  786.  
  787.  
  788. ICONS
  789. -----
  790.         The "Icons" item controls whether ImageLab creates an icon whenever
  791.     a file is saved (via "Save" or "Save As...").  The options are:
  792.  
  793.         ON
  794.         OFF
  795.  
  796.         If ON is selected, an icon is generated that resembles the Deluxe 
  797.     Paint (tm) icon, except that the default project is ImageLab.
  798.  
  799.         Icon generation defaults to off if ImageLab is run from the CLI,
  800.     and to on if it is run from WorkBench.  Icon generation can be
  801.     controlled by the options:
  802.  
  803.         -b            (from the CLI)
  804.         ICON=OFF    (from the WorkBench)
  805.  
  806.  
  807. INTENSITY
  808. ---------
  809.         The "Intensity" item is used to alter the intensity of the picture
  810.     or selected area.  The first three options are:
  811.  
  812.         BRIGHTEN
  813.         DARKEN
  814.         OTHER...
  815.  
  816.     These functions incrementally add or subtract a value from the picture,
  817.     causing the image to brighten or darken, respectively.  The "Other..."
  818.     option allows you to enter a step value other than one; to use it,
  819.     enter the decimal step value you want, and click on the direction
  820.     gadget (the 'delta' symbol to the left) to select the up direction
  821.     ( /\ ) or the down direction ( \/ ).
  822.  
  823.         SCALE UP
  824.         SCALE DOWN
  825.         OTHER...
  826.  
  827.     These three function cause the intensity to be scaled more strongly
  828.     than the previous three by using a multiplicative function.  "Scale Up"
  829.     scales each pixel value by 2 (overflow values are truncated at the
  830.     maximum pixel intensity), while "Scale Down" halves its intensity.
  831.     The "Other..." option works like the previously described requester,
  832.     except that the value obtained from you is either multiplied or divided,
  833.     depending upon the direction you select.
  834.  
  835.         ROOT
  836.  
  837.     The "Root" option dramatically scales down large intensity range by
  838.     replacing each pixel by its square root.
  839.  
  840.  
  841. INVERSE
  842. -------
  843.         The "Inverse" operation computes the complex conjugate of the FFT
  844.     data.  If the data has not been modified, you can use Display and your
  845.     original picture will be regenerated.  If it has been altered in some
  846.     way, you source may substantially return, with some errors introduced.
  847.     The "Merge/XOR" function can quickly highlight changed pixels.
  848.  
  849.     Note: if translation is enabled, you picture will return rotated 180
  850.     degrees.  You can use the "Flip" functions (both in sequence) to
  851.     quickly correct this.
  852.  
  853.  
  854. LAPLACIAN
  855. ---------
  856.         The "Laplacian" operation uses graphical convolution to highlight
  857.     outline edges.  The kernel used is:
  858.         
  859.         -1    -1    -1
  860.         -1     8    -1
  861.         -1    -1    -1
  862.  
  863.  
  864. LINEARIZE
  865. ---------
  866.         The "Linearize" option converts the palette to a monotonically
  867.     increasing palette.  ImageLab requires such a palette for its
  868.     image processing function to perform properly.  For example, if your
  869.     four color palette is:
  870.  
  871.         000        555        fff        aaa
  872.  
  873.     the "Linearize" function will re-order it as:
  874.  
  875.         000        555        aaa        fff
  876.  
  877.     Note that this function requires rewriting all pixels in the picture
  878.     in order to avoid changing its appearance.  This function will be
  879.     required for some DigiView pictures which do not use a linearly
  880.     increasing palette.
  881.  
  882.  
  883. LOG DISPLAY
  884. -----------
  885.         If the "Log Display" option is enabled, the "Display" function will
  886.     perform a logarithmic enhancement to the FFT data before displaying it.
  887.     The dynamic range of the FFT falls off sharply along the axes from the
  888.     DC component at zero.
  889.  
  890.  
  891. LOW FREQUENCY
  892. -------------
  893.         The "Low Frequency" kernel highlights unchanging areas.  The kernel
  894.     used is:
  895.         
  896.         -1    -1    -1
  897.         -1     1    -1
  898.         -1    -1    -1
  899.  
  900.  
  901. MAP COLORS...
  902. -------------
  903.         The "Map Colors..." function operates similarly to "Delete Colors",
  904.     except that only two colors can be selected.  When "Ok" is selected,
  905.     those two colors are exchanged in both the color map and the picture.
  906.  
  907.     See: DELETE COLORS...
  908.  
  909.  
  910. MAXIMUM
  911. -------
  912.         The "Maximum" function replaces each pixel with the maximum value
  913.     found in the surrounding eight pixels.
  914.  
  915.  
  916. MEDIAN
  917. ------
  918.         The "Median" function replaces each pixel with the median value
  919.     found in the surrounding eight pixels.  Since a sort is required to
  920.     find a median, this function is slower than the corresponding "Minimum"
  921.     or "Maximum" functions.
  922.  
  923.  
  924. MERGE...
  925. --------
  926.         The "Merge" item is used to combine the current picture with
  927.     another loaded from disk.  The options available with merge are:
  928.  
  929.         OVERLAY
  930.         ADD
  931.         SUBTRACT
  932.         AND
  933.         OR
  934.         XOR
  935.         OTHER...
  936.  
  937.     The "Overlay" function copies all pixels in the merge picture onto
  938.     the current one wherever the current one contains a zero pixel.
  939.  
  940.     The "Add" and "Subtract" functions perform arithmetic merges of the
  941.     two pictures, paying attention to underflow/overflow issues.
  942.     
  943.     The "AND", "OR", "XOR", and "Other..." functions use the Amiga's
  944.     blitter to perform the requested boolean operations.  The "Other..."
  945.     function allows custom blitter operations; to use, enter the blitter
  946.     minterm as a decimal number (or i hex if you preceed it with '$').
  947.  
  948.     Refer to the Amiga Hardware Reference Manual for details on the
  949.     blitter.
  950.  
  951.  
  952. MINIMUM
  953. -------
  954.         The "Minimum" function replaces each pixel with the minimum value
  955.     found in the surrounding eight pixels.
  956.  
  957.  
  958. MOVE
  959. ----
  960.         The "Move" item moves the pixels from the currently selected area
  961.     to a destination of your choosing.  When "Move" is selected, a
  962.     draggable box is positioned on the screen.  Click down to begin
  963.     positioning it, and release the button when you are over the target
  964.     area.
  965.  
  966.     Note: the image is copied off-screen first, so overlapping images can
  967.     be produced.
  968.  
  969.  
  970. NEGATIVE
  971. --------
  972.         The "Negative" option reverses the order of the color map.  If
  973.     the picture currently has a greyscale color map, the picture will
  974.     appear as a negative.  This can make it easier to pick out features
  975.     of the picture.  Using this function on color pictures is... 
  976.     interesting -- you will generally want to convert it to black and
  977.     white first.
  978.  
  979.  
  980. NO TRANSLATION
  981. --------------
  982.         The "No Translation" function disables the displacement of the
  983.     FFT function to the center of the FFT area.  With this option
  984.     enabled, the FFT data places the DC component at the lower left
  985.     corner, with reflection in all the other corners.
  986.  
  987.         Note: if the translation options is changed, you must re-compute
  988.     the FFT for it to have any effect.
  989.  
  990.  
  991. NOISE...
  992. ----------
  993.         The "Noise..." function introduces impulse noise into the picture
  994.     or selected area.  Noise is generated by writing the brightest pixel
  995.     (white) at random intervals (the noise probability).
  996.  
  997.         A requester allows you to specify the approximate percentage
  998.     probability that noise will occur, from 0 (never) to 100 (always).
  999.  
  1000.     Options:
  1001.         If SHIFT is held while making this selection, then the impulse
  1002.     noise generated will be the darkest color instead (black).
  1003.  
  1004.  
  1005. NORMAL DISPLAY
  1006. --------------
  1007.         If the "Normal Display" option is enabled, the "Display" function
  1008.     will not perform a logarithmic enhancement to the FFT data before
  1009.     displaying it.  Unless you source picture is quite extraordinary,
  1010.     all you will probably get is a white pixel at the DC term location.
  1011.     Use the "Log Display" option to enhance the display.
  1012.  
  1013.  
  1014. OPEN...
  1015. -------
  1016.         The "Open..." item brings up a file requester (C. Heath's famous
  1017.     one).  Select the IFF file you want to use, and select OK.  ImageLab
  1018.     does not currently support SuperBitMap screens, so your picture must
  1019.     fit within the standard Intuition limits: about 720 x 500.
  1020.  
  1021.         If there is an image opened already, and it has been modified,
  1022.     then a requester will be displayed.  Select "OK" to discard your
  1023.     changes, and proceed with loading the new image.
  1024.  
  1025.     Option:
  1026.             If SHIFT is held while making the "Open..." selection, then
  1027.         one bit plane will be stripped from the file while it is read in.
  1028.         This is useful to process Digi-View files (which have an extra bit
  1029.         plane in them) in ImageLab.  This has the same effect as the 
  1030.         "Restrict Palette" item, but conserves the memory that would otherwise
  1031.         be needed.
  1032.  
  1033.  
  1034. PAINT
  1035. -----
  1036.     The "Paint" item puts creates a toolbox on the picture and allows
  1037.     you to modify the pixels with the mouse.  The toolbox contains
  1038.     gadgets for:
  1039.  
  1040.         DRAW
  1041.         XOR
  1042.         RANDOM
  1043.         TRACE
  1044.  
  1045.     The "Draw" option draws the last color selected with the palette.
  1046.     If FFT data is present, the real component is changed to the
  1047.     selected color value.
  1048.  
  1049.     The "Xor" option toggles the pixels on the screen using the
  1050.     exclusive-or operator.  If FFT data is present, the real
  1051.     component is replaced by the reciprocal.
  1052.  
  1053.     The "Random" option draws a random color on the screen.  If FFT
  1054.     data is present, the real component is changed to a floating
  1055.     point random value.
  1056.     
  1057.     The "Trace" option works like "Draw", except that intermediate
  1058.     pixels are connected.  This produces smooth line drawing.
  1059.  
  1060.  
  1061. PALETTE...
  1062. ----------
  1063.         The "Palette..." option brings up a color palette on the screen.
  1064.     You can select a particular color from the block on the palette window,
  1065.     and alter its red, green, and blue components using the three sliders
  1066.     labelled R, G, and B.
  1067.  
  1068.         If you select "OK", the changes are added to your picture.  If
  1069.     you select "Cancel", the old palette is restored.
  1070.  
  1071.  
  1072. PASTE
  1073. -----
  1074.         The "Paste" item copies the contents of the clipboard into the
  1075.     current picture, if it is an IFF image.  It the clipboard is empty,
  1076.     you will receive an error message.  Otherwise, a draggable rectangle
  1077.     will be placed on the picture, which you can position where desired.
  1078.     Click once to begin dragging it, then release it over the position
  1079.     you want, and the data will be inserted.
  1080.  
  1081.  
  1082. PICTURE INFO
  1083. ------------
  1084.         The "Picture Info" item opens a window and displays the following
  1085.     information about the picture file currently open:
  1086.  
  1087.     Name: ..........        (name of the file)
  1088.     File Size: .....        (size in bytes)
  1089.     Size: ..........        (size of the picture: L x W x H)
  1090.     Mode: ..........        (picture modes: EHB, HAM, INTERLACE flags)
  1091.     Area: ..........        (selected area, if any: location and size)
  1092.     FFT: ...........        (number of bytes of FFT information available)
  1093.  
  1094.  
  1095. POSITION
  1096. --------
  1097.         The "Position" item has some functions used to position the picture.
  1098.     Since there are no front/back gadgets, and no drag bar, positioning the
  1099.     screen is somewhat more difficult.  The options are:
  1100.  
  1101.         SCREEN TO FRONT
  1102.         SCREEN TO BACK
  1103.         OCCUPY ALL
  1104.         OCCUPY MIDDLE
  1105.         OCCUPY LOW
  1106.  
  1107.     The FRONT and BACK items can also be performed by the LEFT-AMIGA M and
  1108.     LEFT-AMIGA N keys, respectively, if no other screen are open. The ALL,
  1109.     MIDDLE, and LOW items position the screen to occupy all, half, or a small
  1110.     portion of the WorkBench screen.  The menu keys for these three functions
  1111.     are LEFT-AMIGA- ',', '.', and '/', respectively (chosen for convenience,
  1112.     not for any mnemonic function).
  1113.  
  1114.  
  1115. PSEUDOCOLOR
  1116. -----------
  1117.         The "PsuedoColor" option converts the palette to values such that
  1118.     dark colors are tinted blue (i.e., "cold") and bright colors
  1119.     are tinted red (i.e., "hot").  Average colors are given a green hue.
  1120.     The effect is much like a thermograph, and tends to accentuate the
  1121.     difference between pixels.  If the SHIFT key is held when the "Pseudo-
  1122.     Color" function is selected, the color map is randomized.  This is
  1123.     mostly for fun.
  1124.  
  1125.  
  1126. QUIT
  1127. ----
  1128.         The "Quit" item closes the picture and leaves ImageLab.  If the
  1129.     picture has been modified but not saved, a requester will be brought
  1130.     up to give you a chance to save it first.
  1131.  
  1132.  
  1133. RESIZE
  1134. ------
  1135.         The "Resize" item causes the selected item to be resized.  The
  1136.     resizing options are:
  1137.  
  1138.         COPY
  1139.         INTERPOLATE
  1140.         HALVE
  1141.         DOUBLE
  1142.  
  1143.         The "Copy" and "Interpolate" items are operated identically: you
  1144.     drag the resizing rectangle to the desired size.  When you release
  1145.     the mouse button, the selected area is scaled up or down to fit in
  1146.     the desired area (it is possible to scale up in one dimension and
  1147.     scale down in another at the same time).
  1148.  
  1149.         The difference between "Copy" and "Interpolate" arise when the
  1150.     area is expanded:  "Copy" just copies the first pixel to fill the
  1151.     expanded area, while "Interpolate" employs bilinear interpolation
  1152.     to fill in the area.  Interpolation produces a smoother picture,
  1153.     but is slower to operate.
  1154.  
  1155.         The "Halve" and "Double" options allow you to quickly resize the
  1156.     selected area to half or twice its original size, respectively.  The
  1157.     "Double" operation employs interpolation for best results.
  1158.  
  1159.     Option:
  1160.         If SHIFT is held while selecting the target area, the selection
  1161.     box will be kept square.
  1162.  
  1163.  
  1164. RESTRICT PALETTE
  1165. ----------------
  1166.         The "Restrict Palette" function if primarily used to deal with
  1167.     image files which have a palette larger than is necessary to
  1168.     represent the picture (i.e., the picture has 16 colors, but the
  1169.     palette has 32 locations reserved).  This occurs often with DigiView
  1170.     pictures, which creates an extra bit-plane for internal control
  1171.     functions.  The options are:
  1172.  
  1173.             ON
  1174.             OFF
  1175.  
  1176.         If ON, then the palette is halved (regardless of the total number).
  1177.     This option is reset to OFF whenever a new picture is loaded (or 
  1178.     reverted), or when the screen parameters are edited.
  1179.  
  1180.         See also: EDIT PARAMETERS, OPEN
  1181.  
  1182.  
  1183. PIXELIZE...
  1184. -----------
  1185.         The "Pixelize..." function replaces each pixel with <n> copies
  1186.     of itself, where <n> is from 2 to 10.  This effect "computerizes"
  1187.     images, by craeting a blocky image of low resolution (i.e., IBM
  1188.     compatible).
  1189.  
  1190.  
  1191. REVERT
  1192. ------
  1193.         The "Revert" menu item is enabled when any changes have been made
  1194.     to your image, or to its color-map.  Selecting "Revert" recalls the
  1195.     file from disk.  
  1196.  
  1197.  
  1198. ROBERTS
  1199. -------
  1200.         The "Roberts" transform is a variation of the "Sobel" transform,
  1201.     both of which are effective at outline tracing.  The Roberts transform
  1202.     uses the L->R, U->D, and diagonal gradients at each pixel location
  1203.     in the picture or selected area.
  1204.  
  1205.  
  1206. SATURATE
  1207. --------
  1208.         The "Saturate" function converts the palette to values such that
  1209.     all colors are saturated (i.e, if a color is mostly red, it becomes
  1210.     pure red).
  1211.     
  1212.     Option:
  1213.         If the SHIFT key is held while selecting this function, then
  1214.     the intensity level is also intensified; this forces each pixel to a
  1215.     primary color.
  1216.  
  1217.  
  1218. SAVE
  1219. ----
  1220.         The "Save" item allows writing to disk your current image file, and
  1221.     any changes that have been made to it.  A user-settable option allows
  1222.     ImageLab to create icons and include ImageLab specific information in
  1223.     the IFF file.
  1224.  
  1225.     See Also: SAVE TYPE
  1226.  
  1227.  
  1228. SAVE AS...
  1229. ----------
  1230.         The "Save As..." item allows writing to disk your current imageo
  1231.     using a different file name.  Selecting this item brings up a file
  1232.     requester, allowing you to alter the current filename or enter a new
  1233.     one.  If OK is selected, then the file is saved as described in the
  1234.     "Save" function.
  1235.  
  1236.  
  1237. SAVE TYPE
  1238. ---------
  1239.         The "Save Type" item specifies how pictures will be saved.  The
  1240.     first three items are:
  1241.  
  1242.         NO COMPRESSION
  1243.         COMPRESS RUNS
  1244.         CHOOSE
  1245.  
  1246.     which are mutually exclusive.  The first two items can be selected to
  1247.     indicate what type of data compression to use in the IFF picture file.
  1248.     The default is to save in the mode that the currently open picture was
  1249.     originally saved (usually "COMPRESS RUNS").
  1250.  
  1251.         If the special item 'CHOOSE' is selected, ImageLab will write out
  1252.     the file using both methods, then bring up a requester showing the
  1253.     total file sizes using both methods.  You can then elect to save the
  1254.     smallest one.
  1255.  
  1256.         The second set of Save options are:
  1257.  
  1258.         NO FFT DATA
  1259.         SAVE FFT DATA
  1260.  
  1261.     which control the saving of any FFT data generated by the FFT function.
  1262.     By default, this is disabled, since ImageLab uses a custom IFF id
  1263.     to do so (this *should* be transparent to picture display programs, but
  1264.     that is not always true).
  1265.  
  1266.  
  1267. SHARPEN
  1268. -------
  1269.         The "Sharpen" operation uses graphical convolution to accentuate
  1270.     the differences between the center pixel and the surrounding ones.
  1271.     The kernel used is:
  1272.     
  1273.         -1    -1    -1
  1274.         -1     9    -1
  1275.         -1    -1    -1
  1276.  
  1277.  
  1278. SMOOTH
  1279. ------
  1280.         The "Smooth" operation uses graphical convolution to smooth the
  1281.     area selected by using the smoothing kernel:
  1282.     
  1283.         1    1    1
  1284.         1    1    1
  1285.         1    1    1
  1286.  
  1287.  
  1288. SOBEL
  1289. -----
  1290.         The "Sobel" transform is a highly effective outline tracing
  1291.     function, which examines the gradients present at each pixel
  1292.     location in the picture or selected area.
  1293.  
  1294.  
  1295. THRESHOLD...
  1296. ------------
  1297.         The "Threshold..." function reduces the range of a picture or
  1298.     selected area by clipping pixels which fall outside a user-defined
  1299.     range.  Values outside this range are clipped to the minimum or
  1300.     maximum, as appropriate.
  1301.  
  1302.         To select a threshold, a requester is brought up which has two
  1303.     sliders on it:  adjust the minimum and maximum values to your
  1304.     desired range.  Note: the requester will reject attempts to set a
  1305.     minimum greater than a maximum.
  1306.  
  1307.  
  1308. TRANSFORM
  1309. ---------
  1310.         The "Transform" function invokes ImageLab's two-dimensional FFT 
  1311.     routine.  FFT's convert time domain information (a picture is a valid
  1312.     representation of this) to frequency domain information.  Using the
  1313.     default settings, the transform of an image produces a strong DC
  1314.     component at the center (representing the uniform background) with
  1315.     sine circles radiating outwards (representing the edge frequencies
  1316.     of components in the picture).
  1317.  
  1318.         Refer to any good textbook for a better explanation of this.
  1319.  
  1320.         When the FFT has been computed, you can use the "Paint" functio
  1321.     to introduce errors in the transform, and use the "Inverse" function
  1322.     to try to recover your picture.  For fun, try blotting out the strong
  1323.     DC term in the center of the picture.
  1324.  
  1325.         ImageLab uses an FFT instead of a DFT for speed; however, FFT's
  1326.     must be a power of two in both dimensions (2, 4, 8, etc.).  If the
  1327.     picture or selected area is not a power of two in size, the FFT Size
  1328.     requestor is brought up first.  This requester looks like:
  1329.  
  1330.         +--------------------------------------------------+
  1331.         | The selected FFT area must be a power of two in  |
  1332.         | size.  Adjust the desired size:                  |
  1333.         |                                                  |
  1334.         |  +---------+---------------+                     |
  1335.         |  |@+--+@@@@|               |                     |
  1336.         |  |@+--+@@@@|               |  [] Overscan        |
  1337.         |  |---------+               |                     |
  1338.         |  |                         |  Size:  /\          |
  1339.         |  |                         |       <    >        |
  1340.         |  |                         |         \/          |
  1341.         |  +-------------------------+                     |
  1342.         |  Select: (77,18)..(140,33) Area: [64 x 16]       |
  1343.         |  Screen size: (320,200)                          |
  1344.         |  FFT Max: (1024,1024)                            |
  1345.         |                                                  |
  1346.         | [ Ok ]                             [ Cancel ]    |
  1347.         +--------------------------------------------------+
  1348.  
  1349.         To alter the size of the selected area, click on the arrow gadgets.
  1350.     The "up" and "left" arrow reduce the Y and X dimensions, respectively;
  1351.     the "down" and "right" arrows increase them.  You can also use the
  1352.     arrow keys on the keyboards.
  1353.  
  1354.         To alter the origin of the selected area, use the arrow gadgets as
  1355.     described before, but hold the SHIFT key down while clicking on the
  1356.     gadgets or using the keyboard.  This steps the origin by one in the
  1357.     selected direction; if the ALT key is also held, the origin shifts
  1358.     by ten.
  1359.  
  1360.         If the "Overscan" gadget is selected, you can perform FFT's of
  1361.     entire pictures (if you have enough memory).  Selecting this gadget
  1362.     transforms the requester as shown:
  1363.  
  1364.         +--------------------------------------------------+
  1365.         | The selected FFT area must be a power of two in  |
  1366.         | size.  Adjust the desired size:                  |
  1367.         |                                                  |
  1368.         |  +-------------------------+                     |
  1369.         |  |                         |                     |
  1370.         |  |      +-----------+      |  [] Overscan        |
  1371.         |  |      |  @@@@@@@  |      |                     |
  1372.         |  |      |  @@@@@@@  |      |  Size:  /\          |
  1373.         |  |      +-----------+      |       <    >        |
  1374.         |  |                         |         \/          |
  1375.         |  +-------------------------+                     |
  1376.         |  Select size: (512,256)                          |
  1377.         |  Screen size: (320,200)                          |
  1378.         |  FFT Max: (1024,1024)                            |
  1379.         |                                                  |
  1380.         | [ Ok ]                             [ Cancel ]    |
  1381.         +--------------------------------------------------+
  1382.  
  1383.         The FFT Transform function pads the FFT data to fill in the
  1384.     unspecified areas when overscan is performed.
  1385.  
  1386.         When the FFT is properly set up, select OK to begin the transform.
  1387.     This can take some time for FFT's over about 32 by 32 (on a standard
  1388.     MC68000 Amiga).  A bar chart tracks the FFT's progress in the ImageLab
  1389.     display window.
  1390.  
  1391.  
  1392.     Note: the only functions which can alter the associated FFT data is 
  1393.     the "Paint" function.
  1394.  
  1395.     Options:
  1396.         If the SHIFT key is held while selecting "Transform", then the
  1397.     FFT Size requester is brought up regardless of the selected size.
  1398.  
  1399.  
  1400. TRANSLATION ON
  1401. --------------
  1402.         The "Translation On" function enables the displacement of the
  1403.     FFT function to the center of the FFT area.  Without this option
  1404.     enabled, the FFT data places the DC component at the lower left
  1405.     corner, with reflection in all the other corners.
  1406.  
  1407.         Note: if the translation options is changed, you must re-compute
  1408.     the FFT for it to have any effect.
  1409.  
  1410.  
  1411. UNDO
  1412. ----
  1413.         The "Undo" operation attempts to undo the last operation that was
  1414.     done.  Undo works well with color palette changes, but currently
  1415.     cannot undo changes to the picture itself; use the "Revert" command
  1416.     for that.
  1417.  
  1418.         Only one level of "undo" is supported.
  1419.  
  1420.  
  1421. UNSELECT
  1422. --------
  1423.         The "Unselect" operation clears the select rectangle from the
  1424.     picture, causing all ImageLab operations to be performed on the
  1425.     entire picture.
  1426.  
  1427.  
  1428. VERTICAL EDGE
  1429. -------------
  1430.         The "Vertical Edge" operation uses graphical convolution to highlight
  1431.     vertical edges (but not horizontal ones).  The kernel used is:
  1432.         
  1433.         -1    0    1
  1434.         -1    0    1
  1435.         -1    0    1
  1436.